package pl.edu.pk.psb.bc.bo;

import java.util.List;
import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import pl.edu.pk.psb.bc.assembler.CenaAssembler;
import pl.edu.pk.psb.bc.assembler.OdlegloscAssembler;
import pl.edu.pk.psb.bc.assembler.PrzystanekAssembler;
import pl.edu.pk.psb.bc.dao.CenaDao;
import pl.edu.pk.psb.bc.dao.OdlegloscDao;
import pl.edu.pk.psb.bc.ds.CenaDs;
import pl.edu.pk.psb.bc.ds.PrzystanekDs;
import pl.edu.pk.psb.bc.dto.CenaDto;

@Component
public class CenaBoImpl implements CenaBo {

	@Autowired
	CenaDao cenaDao;

	@Autowired
	CenaAssembler cenaAssembler;

	@Autowired
	PrzystanekAssembler przystanekAssembler;

	@Override
	@Transactional
	public void zapiszCeny(Set<CenaDto> zbiorCenDto, PrzystanekDs przystPoczDs) {
		cenaDao.zapisz(cenaAssembler.konwertujDoDs(zbiorCenDto, przystPoczDs));	
	}

	@Override
	@Transactional
	public List<CenaDto> pobierzPowiazanePrzystanki(int idPrzystanku) {
		return cenaAssembler.konwertujDoListyDto(cenaDao.pobierzPowiazanePrzystanki(idPrzystanku));
	}

	@Override
	@Transactional
	public CenaDto pobierzCenePrzejazdu(int idPrzystPocz, int idPrzystKonc) {
		CenaDs cena = cenaDao.pobierzCene(idPrzystPocz, idPrzystKonc);
		if(cena!=null)
			return cenaAssembler.konwertuj(cena);
		else
			return null;
	}

}
